Rails 7.2からpuma thread数のデフォルトが5から3になる
discussion https://github.com/rails/rails/issues/50450
Rails 7.2からPuma workerのデフォルトスレッド数が5から3になる
前提
スレッドを増やすとスループットは上がるがレイテンシは下がるトレードオフがある
GVLスイッチ、スレッドスイッチなどのコスト etc.のため
マシンリソース、秒間リクエスト数なども関連し、すべてのアプリケーションにとってベストといえる正解はない
それでもデフォルト値はほとんどのアプリケーションにとって合理的な数字であるべき
Web applicationのIO waitが処理時間の何%なのかによって適切な数は変わる
DBを持たないプロキシのようなサーバーならガンガン増やしてもいい
Sidekiqなどのbackground jobはレイテンシをweb appほど気にしないので、より多くのスレッドを使っても問題ない
関連
Railsでpumaやsidekiqのスレッド数とコネクションプールの数ってどうやって決めるんですか
To Thread or Not to Thread: An In-Depth Look at Ruby’s Execution Models by byroot